home *** CD-ROM | disk | FTP | other *** search
- /*=========================== my_timer.c ==================================*/
- /* A test program using "my_timer.h" to time the performance difference */
- /* between using the function-like macro isdigit() or the corresponding */
- /* runtime library function isdigit(); if the preprocessor object-like */
- /* macro MY_TIMER is defined, the START and STOP macros are invoked; */
- /* otherwise, no such code is generated, and no runtime performance */
- /* penalty is imposed - much like using assertions - NDEBUG and assert(); */
- /* */
- /* Inspect the intermediate file (*.i) generated by the preprocessor to */
- /* see the effects of using the START() and STOP macros; use compiler */
- /* option -P for Microsoft C; run the CPP.EXE utility Borland C; */
- /* */
- /* NOTE: Remember to #define MY_TIMER (-DMY_TIMER on the command-line) */
- /* before you #include "my_timer.h" */
- /*=========================================================================*/
- #include <ctype.h>
-
- #define MY_TIMER /* This activates the timer code */
- #include "my_timer.h"
-
- void main( void) {
- char ch = '9';
- int i, is;
-
- START(default function-like macro timing);
- for (i=0; i<NTIMES; i++) is = isdigit(ch);
- STOP;
-
- #undef isdigit
-
- START(alternate function timing);
- for (i=0; i<NTIMES; i++) is = isdigit(ch);
- STOP;
- }
- /*=========================== my_timer.c ==================================*/
-